# CMakeLists.txt for absyntax

# 设定库名称
set(LIBRARY_NAME absyntax)

# 添加源文件
set(SOURCES
        absyntax.cc
        visitor.cc
)

# 将 absyntax.cc 和 visitor.cc 编译为目标文件，
# 然后将它们打包成一个名为 libabsyntax.a（在 Linux 上）的静态库文件。
add_library(${LIBRARY_NAME} STATIC ${SOURCES})

# 如果有其他的头文件目录，可以使用以下命令包括它们
# target_include_directories(${LIBRARY_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)

# 为名为 absyntax 的目标库设置编译标志，它使用了 COMMON_CXX_FLAGS 变量中定义的标志。
# set_target_properties用于设置目标属性
# ${LIBRARY_NAME} 目标库名称
# PROPERTIES 是关键字，表示接下来的内容是这个目标的属性
# COMPILE_FLAGS 表示编译标志。它告诉 CMake，我们要为这个目标库设置特定的编译器标志。
# ${COMMON_CXX_FLAGS} 它是一个变量，在根目录的cmake文件设置过了，这些标志会被添加到目标库的编译标志中。
target_compile_options(${LIBRARY_NAME} PRIVATE ${COMMON_CXX_FLAGS} ${COMMON_CXX_WARNINGS})
